﻿Public Class clCasillaEscaleras : Inherits clCasillaInterruptor : Implements IEquatable(Of clCasillaEscaleras)
    Public Event CambiarPiso(ByVal Yo As clCasillaEscaleras, ByVal e As EventArgs) 'La idea es que si hay dos escaleras, las dos compartan el evento, no le añado E porque no es necesaria, tiene una propiedad booleana que dice si sube (true) o no(false). Que se podrá coger desde ahí sin problema una vez en el formulario. 
    Public Sub New(ByRef Objeto As Control) 'funciona
        MyBase.New(Objeto)
        ImagenPredeterminada = My.Resources.escalera
        If Objeto.GetType = GetType(PictureBox) Then
            TryCast(Objeto, PictureBox).BackgroundImage = ImagenPredeterminada
        End If
        _Sube = True 'Por defecto mejor que suban ¿No? -qué más dará-
    End Sub
    Public Property Sube As Boolean
    Public Overrides Property Activado As Boolean
        Get
            Return _Activado
        End Get
        Set(ByVal value As Boolean)
            _Activado = value
            If _Activado Then
                RaiseEvent CambiarPiso(Me, New EventArgs)
            End If
        End Set
    End Property

    Public Overloads Function Equals(ByVal Escaleras As clCasillaEscaleras) As Boolean Implements System.IEquatable(Of clCasillaEscaleras).Equals
        Return clCasilla.Equals(Me, Escaleras)
    End Function
    Public Overloads Shared Function Equals(ByVal EscalerasA As clCasillaEscaleras, ByVal EscalerasB As clCasillaEscaleras) As Boolean
        Return EscalerasA.GetType = EscalerasB.GetType And EscalerasA.Control.Name = EscalerasB.Control.Name
    End Function
End Class

